<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpModuleNouveauDossier extends cpModuleAdmin
{
	
	
		
	
	
	/// @name Initialisation
	//@{
	
	
	public function __construct($core)
	{
		parent::__construct($core);   
	
		# Permission nécessaire: creerCategorie
		$this->core->auth->verifierPermission('creerCategorie', true);
		
		$this->setTitreModule(__('Nouveau dossier'));
		
		# Lien remonter		
		$this->setPrev('pages&cat_id='.$_SESSION[CP_DERNIERE_CATEGORIE_AFFICHEE], 'Pages');
		
		# Actions
		$this->ajouterBoutonAction(__('Créer'), '#', 'boutonAction_creerDossier');
		
		$this->setActionsAutorisees('creerDossier');
		
		# CSS et Javascript
		$this->setJavascript('nouveauDossier');
	 
	}
	//@}
    
	
	

	
	/// @name Formulaires
	//@{
	
	
	public function action_creerDossier()
	{
		
		# Début de la transaction
		$this->core->con->begin();
		
		try {
			
			# Création du curseur
			$cur = $this->core->con->openCursor($this->core->prefix.'categories');
			$cur->parent_cat_id = (integer) $_POST['parent_cat_id'];
			$cur->cat_url = $_POST['cat_url'];
			$cur->cat_titre = $_POST['cat_titre'];
			
			# Création de la catégorie
			$this->core->site->creerCategorie($cur);
			
			
			# Fin de la transaction
			$this->core->con->commit();
			
		} catch(cpErreur $e) {
			
			$this->core->con->rollback();
			
			if($e->getChamp() == 'page_url') {
				if(empty($_POST['cat_url'])) {
					throw new cpErreur(__('Vous devez indiquer une URL.'), 'cat_url', 101);
				}
				throw new cpErreur(__('Cette URL est déjà utilisée.'), 'cat_url', 102);
			}
			throw new cpErreur($e->getMessage(), $e->getChamp(), $e->getCode());
		}
		
		# Redirection
		http::redirect('index.php?module=pages&cat_id='.(integer) $cur->cat_id.'&nouvelleCat=1');

	}
	//@} 
    
	

	
	
	/// @name Interface du module
	//@{
	
	
	public function interfaceModule()
	{
				
		$cat_titre = isset($_POST['cat_titre']) ? html::escapeHTML($_POST['cat_titre']) : '';
		$cat_url = isset($_POST['cat_url']) ? html::escapeHTML($_POST['cat_url']) : '';
		$parent_cat_id = isset($_POST['parent_cat_id']) ? $_POST['parent_cat_id'] : $_SESSION[CP_DERNIERE_CATEGORIE_AFFICHEE];
		
		$html =
			'<form action="index.php?module=nouveauDossier" method="post" id="formulaireNouveauDossier">'.
				$this->afficherMessages().
				$this->core->nonceHTML('creerDossier').
				form::hidden('action', 'creerDossier').
				form::hidden('erreur', (integer) $this->erreursFormulairePresentes()).
				'<p>'.
					'<label for="cat_titre">'.__('Nom du dossier').'</label>'.
					$this->field('cat_titre', 50, 250, $cat_titre).
				'</p>'.
				'<p>'.
					'<label for="cat_url">'.__('URL du dossier').'</label>'.
					$this->field('cat_url', 50, 200, $cat_url).
				'</p>'.
				'<p>'.
					'<label for="parent_cat_id">'.__('Dossier parent').'</label>'.
					form::combo('parent_cat_id', $this->core->site->getComboCategories(), $parent_cat_id).
				'<p>'.
					'<input type="submit" value="'.__('Créer').'" />'.
				'</p>'.
			'</form>';
			
		return $html;
	
	}
	//@}
	
	
}

?>